<template>
	<view class="container">
		<view class="carousel">
			<swiper indicator-dots circular="true" duration="400">
				<swiper-item class="swiper-item" v-for="(item, index) in proInfo.pics" :key="index">
					<view class="image-wrapper"><image :src="item" class="loaded" mode="aspectFill"></image></view>
				</swiper-item>
			</swiper>
		</view>

		<view class="introduce-section">
			<text class="title">{{proInfo.introduce}}</text>
			<view class="bot-row">
				<text class="store">{{proInfo.name}}</text>
				<text>·</text>
				<text>{{proInfo.distance}}</text>
			</view>
			<view class="my-loc" @click="location">
				<text class="yticon icon-dizhi"></text>
				<text>{{proInfo.address}}</text>
			</view>
		</view>

		<!--  优惠券列表 -->
		<view class="cut-list">
			<view v-for="(coupon, index) in proInfo.coupons" :key="index" class="cut-section" style="margin-top: 3px;">
				<view class="cut-icon">
					<text class="yticon icon-xingxing"></text>
					{{i18n.discount_title}}
				</view>
				<text class="tit">满{{coupon.price}}元减{{coupon.reduce_price}}元</text>
				<text class="yticon "></text>
				<template v-if="hasLogin">
					<view v-if="coupon.is_fetched=='N'" class="cut-btn" @click="fetch(coupon.pivot.s_id, coupon.pivot.c_id, coupon.id)">
						{{i18n.get_title}}
						<text class="yticon icon-you"></text>
					</view>
					<view class="cut-btn-fetched" v-else>
						{{i18n.geted_title}}
					</view>
				</template>
				<template v-else>
					<view class="cut-btn-fetched">
						<navigator url="/pages/public/login">{{i18n.login_title}}</navigator>
					</view>
				</template>
			</view>
		</view>
		<!-- end 优惠券列表 -->
		<!--  商铺详细 -->
		<view class="detail-desc">
			<view class="d-header"><text>{{i18n.header}}</text></view>
			<rich-text :nodes="proInfo.detail"></rich-text>
		</view>
		<!-- end 商铺详细 -->
		<view id="products" style="margin-bottom: 100rpx;">
			<view v-for="item in proInfo.products" id="products_view" @tap="navToDetailPage(item.id)">
				<ProductItem :item="item"></ProductItem>
			</view>
		</view>
		
		<view class="ad-buttom"><image src="/static/temp/ad1.jpg" mode="scaleToFill"></image></view>

		<!-- 分享 -->
		<share ref="share" :contentHeight="580" :shareList="shareList"></share>
	</view>
</template>

<script>
import share from '@/components/share';
import uniIcons from "@/components/uni-icons/uni-icons.vue"
import ProductItem from '../common/product_item.vue'
import request from '../../common/request.js';
import {
		mapState
	} from 'vuex';
export default {
	components: {
		share, uniIcons, ProductItem
	},
	computed: {
		...mapState(['hasLogin']),
		i18n () {  
		  return this.$lang.shop_shop 
		}  
	},
	data() {
		return {
			specClass: 'none',
			specSelected: [],
			proInfo: {
				title: "哪里都可吃哪都美水疗",
				price: "130 (需用券)",
				mPrice: "$140",
				store: "水乐坊",
				distance: "2km",
				loc: "海珠区叠景路156-172号合生广场南区四层",
			},
			favorite: true,
			shareList: [],
			goodsList: [],
		};
	},
	async onLoad(options) {
		let id = options.id;
		var that = this
		request({
			name: 'shop.detail',
			data: {
				id: id ? id : 1
			},
			method: 'get',
			success(res) {
				that.proInfo = res.data.data
				console.log(that.proInfo)
			}
		})
		this.shareList = await this.$api.json('shareList');
	},
	methods: {
		//领取优惠券
		fetch(s_id, c_id, id) {
			var that = this
			request({
				name: 'shop.fetch_coupon',
				method: 'post',
				data: {
					s_id: s_id,
					c_id: c_id,
					user_id: that.user_id
				},
				success(res) {
					if (res.data.code == 0) {
						that.$api.msg('领取成功,请在个人中心查看')
						for (let i = 0; i < that.proInfo.coupons.length; i++) {
							let coupon = that.proInfo.coupons[i]
							if (coupon.id == id) {
								coupon.is_fetched = 'Y'
							}
							that.proInfo.coupons[i] = coupon
						}
					} else {
						that.$api.msg(res.data.msg);
					}
				}
			})
		},
		//分享
		share() {
			this.$refs.share.toggleMask();
		},
		//导航
		location() {
			console.log('shop loc', this.proInfo, typeof(plus))
			if(typeof(plus) == 'undefined'){
				uni.openLocation({
					latitude: parseFloat(this.proInfo.latitude),
					longitude: parseFloat(this.proInfo.longitude),
					success: function () {
						console.log('openLocation success');
					}
				});
			}else{
				this.openMap(this.proInfo.latitude, thisproInfo.longitude);
			}
		},
		//收藏
		toFavorite() {
			this.favorite = !this.favorite;
		},
		stopPrevent() {}
	}
};
</script>

<style lang="scss">
page {
	background: $page-color-base;
	/* padding-bottom: 160upx; */
}
.icon-you {
	font-size: $font-base + 2upx;
	color: #888;
}
.carousel {
	height: 722upx;
	position: relative;
	swiper {
		height: 100%;
	}
	.image-wrapper {
		width: 100%;
		height: 100%;
	}
	.swiper-item {
		display: flex;
		justify-content: center;
		align-content: center;
		height: 750upx;
		overflow: hidden;
		image {
			width: 100%;
			height: 100%;
		}
	}
}

/* 标题简介 */
.introduce-section {
	background: #fff;
	padding: 20upx 30upx;

	.title {
		font-size: 32upx;
		color: $font-color-dark;
		height: 50upx;
		line-height: 50upx;
	}
	.price-box {
		display: flex;
		align-items: baseline;
		height: 64upx;
		padding: 10upx 0;
		font-size: 26upx;
		color: $uni-color-primary;
	}
	.price {
		font-size: $font-lg + 2upx;
	}
	.m-title {
		margin: 0 12upx;
		color: $font-color-light;
	}
	.m-price {
		margin: 0 12upx;
		color: $font-color-light;
		text-decoration: line-through;
	}
	.coupon-tip {
		align-items: center;
		padding: 4upx 10upx;
		background: $uni-color-primary;
		font-size: $font-sm;
		color: #fff;
		border-radius: 6upx;
		line-height: 1;
		transform: translateY(-4upx);
	}
	.bot-row {
		display: flex;
		align-items: center;
		height: 50upx;
		font-size: $font-sm;
		color: $font-color-light;
		text {
			margin: 10upx;
		}
	}
	.my-loc {
		display: flex;
		align-items: center;
		height: 50upx;
		font-size: $font-sm;
		color: $font-color-light;
		text {
			margin: 10upx;
		}
	}
	.share-btn {
		flex: 1;
		text-align: right;
		font-size: $font-sm;
		color: $uni-color-primary;
	}
	.icon-share {
		/* font-size: 46upx; */
	}
}
/* 优惠券 */
.cut-list {
	font-size: $font-sm + 2upx;
	color: $font-color-base;

	.cut-section {
		display: flex;
		align-items: center;
		color: $font-color-base;
		background: linear-gradient(left, #fdf5f6, #fbebf6);
		padding: 12upx 30upx;

		.cut-icon {
			display: flex;
			align-items: center;
			width: 100upx;
			height: 40upx;
			line-height: 1;
			border: 1px solid $uni-color-primary;
			border-radius: 4upx;
			position: relative;
			overflow: hidden;
			font-size: 22upx;
			color: $uni-color-primary;

			&:after {
				content: '';
				width: 50upx;
				height: 50upx;
				border-radius: 50%;
				left: -20upx;
				top: -12upx;
				position: absolute;
				background: $uni-color-primary;
			}
		}

		.icon-xingxing {
			position: relative;
			z-index: 1;
			font-size: 24upx;
			margin-left: 2upx;
			margin-right: 10upx;
			color: #fff;
			line-height: 1;
		}

		.tit {
			font-size: $font-base;
			margin-left: 10upx;
		}

		.icon-bangzhu1 {
			padding: 10upx;
			font-size: 30upx;
			line-height: 1;
		}

		.cut-btn {
			flex: 1;
			text-align: right;
			font-size: $font-sm;
			color: $uni-color-primary;
		}

		.cut-btn-fetched {
			flex: 1;
			text-align: right;
			font-size: $font-sm;
			color: 'gray';
		}

		.icon-you {
			font-size: $font-sm;
			margin-left: 4upx;
			color: $uni-color-primary;
		}
	}
}

.c-list {
	font-size: $font-sm + 2upx;
	color: $font-color-base;
	background: #fff;
	.c-row {
		display: flex;
		align-items: center;
		padding: 20upx 30upx;
		position: relative;
	}
	.tit {
		width: 140upx;
	}
	.con {
		flex: 1;
		color: $font-color-dark;
		.selected-text {
			margin-right: 10upx;
		}
	}
	.bz-list {
		height: 40upx;
		font-size: $font-sm + 2upx;
		color: $font-color-dark;
		text {
			display: inline-block;
			margin-right: 30upx;
		}
	}
	.con-list {
		flex: 1;
		display: flex;
		flex-direction: column;
		color: $font-color-dark;
		line-height: 40upx;
	}
	.red {
		color: $uni-color-primary;
	}
}

/*  详情 */
.detail-desc {
	background: #fff;
	margin-top: 16upx;
	.d-header {
		display: flex;
		justify-content: center;
		align-items: center;
		height: 80upx;
		font-size: $font-base + 2upx;
		color: $font-color-dark;
		position: relative;

		text {
			padding: 0 20upx;
			background: #fff;
			position: relative;
			z-index: 1;
		}
		&:after {
			position: absolute;
			left: 50%;
			top: 50%;
			transform: translateX(-50%);
			width: 300upx;
			height: 0;
			content: '';
			border-bottom: 1px solid #ccc;
		}
	}
}

/* 规格选择弹窗 */
.attr-content {
	padding: 10upx 30upx;
	.a-t {
		display: flex;
		image {
			width: 170upx;
			height: 170upx;
			flex-shrink: 0;
			margin-top: -40upx;
			border-radius: 8upx;
		}
		.right {
			display: flex;
			flex-direction: column;
			padding-left: 24upx;
			font-size: $font-sm + 2upx;
			color: $font-color-base;
			line-height: 42upx;
			.price {
				font-size: $font-lg;
				color: $uni-color-primary;
				margin-bottom: 10upx;
			}
			.selected-text {
				margin-right: 10upx;
			}
		}
	}
	.attr-list {
		display: flex;
		flex-direction: column;
		font-size: $font-base + 2upx;
		color: $font-color-base;
		padding-top: 30upx;
		padding-left: 10upx;
	}
	.item-list {
		padding: 20upx 0 0;
		display: flex;
		flex-wrap: wrap;
		text {
			display: flex;
			align-items: center;
			justify-content: center;
			background: #eee;
			margin-right: 20upx;
			margin-bottom: 20upx;
			border-radius: 100upx;
			min-width: 60upx;
			height: 60upx;
			padding: 0 20upx;
			font-size: $font-base;
			color: $font-color-dark;
		}
		.selected {
			background: #fbebee;
			color: $uni-color-primary;
		}
	}
}

/*  弹出层 */
.popup {
	position: fixed;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 99;

	&.show {
		display: block;
		.mask {
			animation: showPopup 0.2s linear both;
		}
		.layer {
			animation: showLayer 0.2s linear both;
		}
	}
	&.hide {
		.mask {
			animation: hidePopup 0.2s linear both;
		}
		.layer {
			animation: hideLayer 0.2s linear both;
		}
	}
	&.none {
		display: none;
	}
	.mask {
		position: fixed;
		top: 0;
		width: 100%;
		height: 100%;
		z-index: 1;
		background-color: rgba(0, 0, 0, 0.4);
	}
	.layer {
		position: fixed;
		z-index: 99;
		bottom: 0;
		width: 100%;
		min-height: 40vh;
		border-radius: 10upx 10upx 0 0;
		background-color: #fff;
		.btn {
			height: 66upx;
			line-height: 66upx;
			border-radius: 100upx;
			background: $uni-color-primary;
			font-size: $font-base + 2upx;
			color: #fff;
			margin: 30upx auto 20upx;
		}
	}
	@keyframes showPopup {
		0% {
			opacity: 0;
		}
		100% {
			opacity: 1;
		}
	}
	@keyframes hidePopup {
		0% {
			opacity: 1;
		}
		100% {
			opacity: 0;
		}
	}
	@keyframes showLayer {
		0% {
			transform: translateY(120%);
		}
		100% {
			transform: translateY(0%);
		}
	}
	@keyframes hideLayer {
		0% {
			transform: translateY(0);
		}
		100% {
			transform: translateY(120%);
		}
	}
}
.ad-buttom {
	width: 100%;
	height: 210upx;
	padding: 10upx 0;
	background: #fff;
	image {
		width: 100%;
		height: 100%;
	}
}

#products_view {
	background-color: #FFF;
	margin-top: 10rpx;
	padding: 20rpx;
}
</style>
